三维线性拟合python 三维曲线拟合 matlab

您所在的位置:网站首页 三维曲线拟合 python 三维线性拟合python 三维曲线拟合 matlab

三维线性拟合python 三维曲线拟合 matlab

2024-06-21 13:07| 来源: 网络整理| 查看: 265

           三维曲面拟合图是通过三维实验数据点进行曲面拟合,可以更加清晰直观的显示X、Y、Z三个坐标点的分布情况,三维曲面图常见于工程技术方面,运动轨迹的显示,温度分布的显示等。下面一起跟着南同学进行三维曲面图的绘制吧!

成图效果展示

三维线性拟合python 三维曲线拟合 matlab_三维线性拟合python

三维线性拟合python 三维曲线拟合 matlab_开发语言_02

三维线性拟合python 三维曲线拟合 matlab_开发语言_03

三维线性拟合python 三维曲线拟合 matlab_开发语言_04

绘图三步走

取色取色的核心是获取0-1之间的RGB值矩阵、在Matlab中对于0-255之间的颜色数值需要进行归一化处理。数据准备三维曲面拟合图数据需要实验数据格式为X-Y-Z,即三维空间的坐标数据,当然也可以用到第四维度数据特征,用来表征颜色深浅。函数使用三维曲面拟合图主要用到mesh函数与surf函数,本文主要用mesh函数绘制。

👉  1. 取色

此次取色步骤和之前取色过程不同、三维散点图需要很多种颜色渐进、即colormap,大小约为n*3的数据矩阵,需要选取两种基础色进行线性插值、具体基础色如下图:

三维线性拟合python 三维曲线拟合 matlab_开发语言_05

接着对两种颜色进行线性插值、生成n组RGB值,实现一个颜色柱的绘制、从而得到一个完整的色系。生成后的色系图如下:

三维线性拟合python 三维曲线拟合 matlab_三维线性拟合python_06

如上图所示、由两种基础色——完整的色彩柱就生成啦,大小为n*3,并将其保存为mycolor1.mat文件用于matlab读取,色系生成代码如下:

%% 生成颜色柱 clc; clear; figure('color',[1 1 1]); color1 = [0 176 240]./255; % 第一种颜色 color2 = [226 240 217]./255;% 第二种颜色 n=64;% 颜色数据点 R1 =(linspace(color1(1),color2(1),n))'; G1 =(linspace(color1(2),color2(2),n))'; B1 =(linspace(color1(3),color2(3),n))'; mycolor2 = [R1,G1,B1]; colormap(mycolor2); c= colorbar; save mycolor2

👉  2. 数据准备

此次绘图教程的数据主要包括四个维度,分别为X、Y、Z、C四个维度数据,其中第四个维度为特征数据,用来表征颜色深浅,这列数据也可以用Z轴表示,具体数据代码如下:

%获取颜色柱数据与实验数据 clc; clear; load mycolor1.mat load mycolor2.mat [data,str,all] = xlsread('XYZ2.xlsx');%三维数据文件 把你的数据复制到XYZ文件替换数据就行 x=data(:,1); y=data(:,2); z=data(:,3); c=data(:,4);%用来表示颜色特征

👉  3. 函数使用

绘制三维散点图主要函数为mesh、通过Griddata函数生成三维网格所需要的数据,三维数据插值方法主要分为四种:'linear',‘nearest’,‘cubic’,‘natural’。大家可以尝试不同的插值方法,本文主要以natural为例子,绘图代码如下:

method_fit = 'natural'; %插值生成网格化数据 [XX,YY,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),method_fit); [X,Y,C]=griddata(x,y,c,linspace(min(x),max(x))',linspace(min(y),max(y)),method_fit); figure('color',[1 1 1]); mesh(XX,YY,Z,C);%三维曲面 xlabel('X轴'); ylabel('Y轴'); zlabel('Z轴'); title('三维数值拟合曲线'); colormap(autumn); colorbar; h = colorbar;%右侧颜色栏 set(get(h,'label'),'string','z值');%给右侧颜色栏命名 grid on; %用来调整三维视角角度 view(157,11);

综上所述,绘图完成代码如下:

%% matlab绘制三维曲面图 %获取颜色柱数据与实验数据 clc; clear; load mycolor1.mat load mycolor2.mat [data,str,all] = xlsread('XYZ2.xlsx');%三维数据文件 把你的数据复制到XYZ文件替换数据就行 x=data(:,1); y=data(:,2); z=data(:,3); c=data(:,4);%用来表示颜色特征 method_fit = 'cubic'; %插值生成网格化数据 [XX,YY,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),method_fit); [X,Y,C]=griddata(x,y,c,linspace(min(x),max(x))',linspace(min(y),max(y)),method_fit); figure('color',[1 1 1]); mesh(XX,YY,Z,C);%三维曲面 xlabel('X轴'); ylabel('Y轴'); zlabel('Z轴'); title('三维数值拟合曲线'); colormap(autumn); colorbar; h = colorbar;%右侧颜色栏 set(get(h,'label'),'string','z值');%给右侧颜色栏命名 grid on; %用来调整三维视角角度 view(157,11);

这样三维曲面拟合图就做完啦,赶快收藏起来吧!!!!

三维线性拟合python 三维曲线拟合 matlab_曲面拟合_07

三维线性拟合python 三维曲线拟合 matlab_三维线性拟合python_08

三维线性拟合python 三维曲线拟合 matlab_数据_09



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3